問題解説 Routing 実技

解説

問題

トポロジ&IPアドレス表

あなたは友人とともに自宅のネットワーク環境を整えています(図参照)。友人はCSR2,CSR3を設定しました。
あなたはCSR1を操作しネットワークを完成させなければなりません。
必要な設定は以下の3つです。

1.CSR2とOSPFネイバーを確立し、経路情報を交換する

  • area : 0
  • ネットワークマスク : /24
  • Helloインターバル : 10
  • Dead インターバル : 40
  • 認証なし
    CSR2へdefault route のアドバタイズを行う

2.CSR3とBGPネイバーを確立し、経路情報を交換する

  • local AS : 65001
  • ネイバーIP : 10.0.0.3
  • remote AS : 65002
  • 認証なし

3.OSPFで学習した経路のうち、10.2.1.0/24のみをEBGPに再配布する

あなたは1,2の設定作業を終えたときに、CSR2とOSPFネイバーが、CSR3とEBGPネイバーが確立できていないことに気が付きました。
設定ミスや、パラメータについて友人と正しく共有できていなかったがあった等、様々な可能性があります。
友人は現在深い眠りについているので、話を聞くことができません。
もし異なっていると思われるパラメータが存在するならば、CSR1の設定を修正してネイバー確立を試みてください。

・トラブルシューティングのヒント
Cisco機器ではトラブルシューティングにdebugコマンドを使用する機会が多くあります。
1のトラブルについて、debugコマンドを使用し状況把握に努めてください
telnet接続時にdebugコマンドの出力を確認するには、特権モードでterminal monitorを実行してください。
全てのdebugの出力を止めるには no debug allを使用します。

CSR2,CSR3については設定を行うことはできませんが、CSR1からtelnetを行うことによって show ip route など一部のshowコマンドを実行することができます。

(1) 本問題ではCSR2,CSR3に接続されているネットワークを表現するためにLoopback interfaceを使用しています。
(2) CSR2,CSR3からCSR1へアドバタイズされないルートが存在しますが、不具合ではありません。
(3) 本問題ではvnc serverをPPPoEルータとみなしています。

解説

1と2について順序関係はありません。
3については1と2のトラブルを解決後に構築が行なえます。

1. CSR2とOSPFネイバーを確立し、経路情報を交換する

トラブルは、設定を行ったにもかかわらずCSR2とのOSPFネイバーが確立できないという内容です。
CSR1の設定ミスやCSR2とのパラメータの不一致が考えられます。(ネイバー確立の条件についてはぜひ調べてみてください)
CSR1のOSPFの設定を確認すると以下のようになっています。

router ospf 1
 passive-interface default
 no passive-interface GigabitEthernet2
 network 192.168.1.0 0.0.0.255 area 0
 default-information originate

networkコマンドが設定されており、no passive-interfaceとなっていることからGigabitEthernet2からOSPF Helloは送信されていそうです。
次にHelloが送信されているかを確認します。
問題文にあるように、telnet接続時にdebugの出力を得るにはterminal moniorを実行してください。

csr1#debug ip ospf packet 
OSPF packet debugging is on
csr1#
*Dec 15 15:08:59.110: OSPF-1 PAK  : Gi2:  IN: 192.168.1.2->224.0.0.5: ver:2 type:1 len:44 rid:2.2.2.2 area:0.0.0.0 chksum:2617 auth:0
csr1#
*Dec 15 15:09:00.473: OSPF-1 PAK  : Gi2: OUT: 192.168.1.1->224.0.0.5: ver:2 type:1 len:44 rid:1.1.1.1 area:0.0.0.0 chksum:28F3 auth:0
csr1#no debug all

Helloは送信されており、CSR2のHelloを受信していることも確認できます。
ではHelloを送受信でどのようなことが起こっているのでしょうか。

csr1#debug ip ospf hello 
OSPF hello debugging is on
csr1#
*Dec 15 15:11:05.759: OSPF-1 HELLO Gi2: Rcv hello from 2.2.2.2 area 0 192.168.1.2
*Dec 15 15:11:05.759: OSPF-1 HELLO Gi2: Mismatched hello parameters from 192.168.1.2
*Dec 15 15:11:05.759: OSPF-1 HELLO Gi2: Dead R 12 C 40, Hello R 3 C 10 Mask R 255.255.255.252 C 255.255.255.0
csr1#no debug all

debugの出力からHello interval/Dead interval、ネットワークマスクがの不一致が確認できます。
これがネイバー確立を行えなかった原因です。
これらを修正するコマンドは以下です。

interface GigabitEthernet 2 
 ip address 192.168.1.1 255.255.255.252
 ip ospf hello-interval 3
 ip ospf dead-interval 12

上記の設定を行うとネイバーが確立できます。

csr1#show ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   FULL/DR         00:00:09    192.168.1.2     GigabitEthernet2
csr1#

しかし問題はここで終わりません。
CSR2にログインし、ルーティングテーブルを確認します。

csr2>show ip route 
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
C        10.2.1.0/24 is directly connected, Loopback1
L        10.2.1.1/32 is directly connected, Loopback1
C        10.2.2.0/24 is directly connected, Loopback2
L        10.2.2.1/32 is directly connected, Loopback2
C        10.2.3.0/24 is directly connected, Loopback3
L        10.2.3.1/32 is directly connected, Loopback3
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/30 is directly connected, GigabitEthernet1
L        192.168.1.2/32 is directly connected, GigabitEthernet1
csr2>

CSR2へdefault route のアドバタイズを行うはずが、CSR2にはGateway of last resort is not setと出力されアドバタイズがされておりません。
なぜdefault-information originateという設定が行われているのにアドバタイズがされないのでしょうか。
実はCSR1にもデフォルトルートがないため、アドバタイズが行われないのです。

csr1#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
C        10.0.0.1/32 is directly connected, Loopback1
O        10.2.1.0/24 [110/2] via 192.168.1.2, 00:06:00, GigabitEthernet2
O        10.2.3.0/24 [110/2] via 192.168.1.2, 00:06:00, GigabitEthernet2
      192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.0.0/24 is directly connected, GigabitEthernet1
L        192.168.0.1/32 is directly connected, GigabitEthernet1
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/30 is directly connected, GigabitEthernet2
L        192.168.1.1/32 is directly connected, GigabitEthernet2
      192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.2.0/30 is directly connected, GigabitEthernet3
L        192.168.2.1/32 is directly connected, GigabitEthernet3
csr1#

これを解決するには以下の2通りの方法が考えられます。
1.CSR1にstatic route(ip route 0.0.0.0 0.0.0.0 192.168.0.254)でデフォルトルートを作成する
2.CSR1のOSPFにdefault-information originate alwaysと設定しデフォルトルートの有無にかかわらずアドバタイズを行う
構築のゴールはデフォルトルートがアドバタイズされることなので、どちらの方法でも構いません。
CSR2のルーティングテーブルが以下のように出力されればOKです。

csr2>show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is 192.168.1.1 to network 0.0.0.0

O*E2  0.0.0.0/0 [110/1] via 192.168.1.1, 00:02:26, GigabitEthernet1
      10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
C        10.2.1.0/24 is directly connected, Loopback1
L        10.2.1.1/32 is directly connected, Loopback1
C        10.2.2.0/24 is directly connected, Loopback2
L        10.2.2.1/32 is directly connected, Loopback2
C        10.2.3.0/24 is directly connected, Loopback3
L        10.2.3.1/32 is directly connected, Loopback3
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/30 is directly connected, GigabitEthernet1
L        192.168.1.2/32 is directly connected, GigabitEthernet1
csr2>

2. CSR3とBGPネイバーを確立し、経路情報を交換する

トラブルは、設定を行ったにもかかわらずCSR3とのBGPネイバーが確立できないという内容です。

csr1#show ip bgp summary 
BGP router identifier 10.0.0.1, local AS number 65001
BGP table version is 1, main routing table version 1

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.0.3        4        65002       0       0        1    0    0 never    Idle
csr1#

設定ミスやCSR3とのパラメータの不一致が考えられます。(ネイバー確立の条件についてはぜひ調べてみてください)
CSR1のBGPの設定を確認すると以下のようになっています。

router bgp 65001
 neighbor 10.0.0.3 remote-as 65000
 neighbor 10.0.0.3 update-source Loopback1

CSR1のルーティングテーブル(上記参照)では10.0.0.3のNext HopがCSR3のGigabitEhternet1になっていません。
したがって10.0.0.3へは通信が行えません。

csr1#ping 10.0.0.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.3, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
csr1#

これを解決するためにはstatic routeで経路情報を追加します。

 csr1(config)#ip route 10.0.0.3 255.255.255.255 192.168.2.2
csr1(config)#end
csr1#ping 10.0.0.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
csr1#

しかしまだ問題は解決しません。
CSR3にアクセスして実行できるコマンドを確認すると、show ip protocolsshow ip bgp summaryなどがあります。

csr3>show ip bgp summary 
BGP router identifier 10.3.20.1, local AS number 65000
BGP table version is 2, main routing table version 2
1 network entries using 248 bytes of memory
1 path entries using 136 bytes of memory
1/1 BGP path/bestpath attribute entries using 280 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 664 total bytes of memory
BGP activity 1/0 prefixes, 1/0 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.0.1        4        65001       0       0        1    0    0 never    Active
csr3>

上記の出力確認するとCSR3のlocal AS numberが65000であることがわかります。
ネイバーの宛先としてCSR1のループバックを指定していることも確認できます。
以下の設定で解決を試みます。

router bgp 65001
 neighbor 10.0.0.3 remote-as 65000
 neighbor 10.0.0.3 update-source loopback 1

まだ解決には至りません。
CSR1とCSR3のASは異なる値であるため、EBGPとなります。
EBGPのデフォルトのTTLは1であるため、Loopbackまでパケットが到達しないのです。
これを解決するためは以下のような設定となっていればOKです。

router bgp 65001
 neighbor 10.0.0.3 remote-as 65000
 neighbor 10.0.0.3 update-source loopback 1
 neighbor 10.0.0.3 ebgp-multihop 2

以下確認のコマンドです。

csr1#show ip bgp summary 
BGP router identifier 10.0.0.1, local AS number 65001
BGP table version is 2, main routing table version 2
1 network entries using 248 bytes of memory
1 path entries using 136 bytes of memory
1/1 BGP path/bestpath attribute entries using 280 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 688 total bytes of memory
BGP activity 1/0 prefixes, 1/0 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.0.3        4        65000       5       4        2    0    0 00:00:06        1
csr1#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
C        10.0.0.1/32 is directly connected, Loopback1
S        10.0.0.3/32 [1/0] via 192.168.2.2
O        10.2.1.0/24 [110/2] via 192.168.1.2, 00:55:08, GigabitEthernet2
O        10.2.3.0/24 [110/2] via 192.168.1.2, 00:55:08, GigabitEthernet2
B        10.3.10.0/24 [20/0] via 10.0.0.3, 00:00:16
      192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.0.0/24 is directly connected, GigabitEthernet1
L        192.168.0.1/32 is directly connected, GigabitEthernet1
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/30 is directly connected, GigabitEthernet2
L        192.168.1.1/32 is directly connected, GigabitEthernet2
      192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.2.0/30 is directly connected, GigabitEthernet3
L        192.168.2.1/32 is directly connected, GigabitEthernet3
csr1#

3. OSPFで学習した経路のうち、10.2.1.0/24のみをEBGPに再配布する

こちらはトラブルではなく構築問題となります。
解法はいくつも存在します。
ここでは一例としてroute-mapを使用した再配送の設定を示します。

router bgp 65001
 redistribute ospf 1 route-map FromOspf
 !!! 省略 !!!
!
access-list 1 permit 10.2.1.0 0.0.0.255
!
!
route-map FromOspf permit 10 
 match ip address 1
!

CSR3のルーティングテーブルが以下のようになっていればOKです。

csr3>show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
S        10.0.0.1/32 [1/0] via 192.168.2.1
C        10.0.0.3/32 is directly connected, Loopback1
B        10.2.1.0/24 [20/2] via 10.0.0.1, 00:00:25
C        10.3.10.0/24 is directly connected, Loopback2
L        10.3.10.1/32 is directly connected, Loopback2
C        10.3.20.0/24 is directly connected, Loopback3
L        10.3.20.1/32 is directly connected, Loopback3
      192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.2.0/30 is directly connected, GigabitEthernet1
L        192.168.2.2/32 is directly connected, GigabitEthernet1
csr3>

講評

ルーティングの実技問題として本問題を出題させていただきました。
解答をしてくださった方々の得点率は高かったので作門者としては嬉しい限りです。
しかしながら全問題中で解答率は一番低い問題となってしまいました。
ネットワークよりもサーバやプログラミングの分野が得意な方が多く参加された結果なのかと感じました。

ちなみにですが、本問題で曲者となったのはトラブル1のデフォルトルートのアドバタイズです。
ネイバーが構築できた後に、CSR2のルーティングテーブルの確認を失念してしまった方が多かったのではないかと思います。

本問題がきっかけでネットワーク分野により興味を持ってくださる方がいらっしゃれば幸いです。